In many business environments, a server is used to store data that is pertinent to many employees or remote users of a business. The server is typically accessible by remote computer devices (“clients”) to increase the availability of information to the remote users. By providing files on a server, which may be accessed by remote computer devices, dissemination of information through the company is increased. Remote access to data is more critical in environments where a sales force or many employees operate away from the office. As an example, the remote employees rely on the information to be up-to-date to be informed about inventory changes, pricing data, and company events.
Rather than remain connected to the server indefinitely and collect telecommunication charges or tie up phone lines, the remote users only intermittently connect their computers to a server for access to data on the server. In these environments, the remote computer devices typically store the server data locally to support the remote application even when the client is not connected to the server. The intermittent connection is then used to send only changes made by the client application to the server and a pertinent set of changes from the server to the client. This type of remote computer system environment is called an Intermittently Connected (IC) environment.
An important communication issue for this type of computer environment is the timely and efficient exchange of information, including related information, between the clients and the server. The term “data transfer” is often used to describe the process of maintaining data consistency and integrity among server files and client files. There are many data transfer schemes for maintaining consistency. In some known file transfer schemes, various protocols and methods, for example compression to efficiently transfer files, are used.
Currently, data transfer for remote devices must be initiated either manually by a user on a remote device or on a predetermined schedule. When initiating data transfers manually the user must manually initiate communication without knowing if there is data to be downloaded. This manual initiation is costly both in time committed by the user to initiate the connection and for the connection time when there is no data to be downloaded to the remote device. An additional factor is when the client initiates a data transfer when the user is not able to make the connection to the data source. This is costly both in time and in power consumption.
Problems with scheduling data transfers on a predetermined schedule are that there are times when there is no data to be transferred and the connection is made for ultimately no reason. This is costly both in connection time and in power consumption. Additional problems with predetermined schedule data transfers is that for cost reasons it is more cost-efficient to have greater intervals between schedule connections. The problem with this is that the data is then not downloaded in the most timely fashion. A problem with scheduling data transfers with small enter roles is that it will waste more connection time (i.e. bandwidth) and power consumption.
Thus, heretofore an unaddressed need exists in the industry to address the aforementioned deficiencies downloading data to a remote device quickly and efficiently.